﻿@{
	Page.Title = "JSON Schema Store";
	Page.Description = "JSON Schemas for common JSON file formats";
	Layout = "~/_layout.cshtml";
}

<article id="schemalist">
    <h3 id="count">JSON Schemas are available for the following {0} files:</h3>

    <input type="search" placeholder="Search schemas" id="search" />
    <ul id="schemas" class="columns" role="directory" data-api="/api/json/catalog.json"></ul>
</article>

<article>
	<h3 id="auto-completion">Auto completion</h3>
	<p>
		<img src="~/img/autocomplete.png" width="354" height="171" alt="JSON schema auto completion" class="left" />
		In supported JSON editors like Visual Studio and Visual Studio Code,
		schema files can offer auto-completion and validation to make sure your JSON document is correct.
	</p>

	<p>
		See <a href="https://json-schema.org/tools">a list</a>
		of editors, validators and other software supporting JSON schemas.
	</p>
</article>

<article>
	<h3 id="tooltips">Tooltips</h3>
	<p>
		<img src="~/img/tooltip.png" width="411" height="98" alt="JSON schema tooltip" class="right" />
		When a JSON editor supports schemas, tooltips can help inform the user
		about the various properties and values.
	</p>
</article>

<article>
	<h3 id="api">Public API</h3>
	<p>
		<img src="/img/api.png" width="256" height="88" alt="Public API for JSON Schemas" class="left" />
		The JSON <a href="~/api/json/catalog.json">API</a> contains a list of JSON Schema files for known JSON file formats.
		Each schema file can be used in tooling such as command line validators, editor auto-completion etc.
	</p>
	<p>
		The API exposes metadata about each schema in the following format:
	</p>
<pre>
{
  "name": "bower.json",
  "description": "Bower package description file",
  "fileMatch": [ "bower.json", ".bower.json" ],
  "url": "https://json.schemastore.org/bower.json"
}
</pre>
	<p>
		<code>name</code>, <code>description</code> and <code>url</code> are all required properties.
		<br />
		The <code>url</code> property is an absolute URI pointing to the schema.
		It can be hosted anywhere on the web.
		<br />
		The <code>fileMatch</code> property is for specifying what known file names corresponds with
		the schema. This property is optional since not all JSON formats enforce a specific file name.
	</p>
</article>

<article>
    <h3 id="editors">Supporting editors</h3>
    <p>
        Various editors and IDEs have direct support for schemas hosted on SchemaStore.org.
    </p>

    <ul id="editorlist" class="columns">
        <li>Android Studio</li>
		<li>CLion</li>
		<li>Emacs via <a href="https://github.com/joaotavora/eglot" target="_blank">eglot</a></li>
		<li>IntelliJ IDEA</li>
        <li>JSONBuddy</li>
        <li>Neovim via <a href="https://github.com/b0o/SchemaStore.nvim" target="_blank">SchemaStore.nvim</a></li>
        <li>PhpStorm</li>
        <li>PyCharm</li>
		<li>ReSharper</li>
        <li>Rider</li>
        <li>RubyMine</li>
		<li>SublimeText via <a href="https://packagecontrol.io/packages/LSP-json" target="_blank">LSP-json</a>,<a href="https://packagecontrol.io/packages/LSP-yaml" target="_blank">LSP-yaml</a></li>
        <li>Visual Studio</li>
        <li>Visual Studio Code (<a href="https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml" target="_blank">YAML</a>,<a href="https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml" target="_blank">TOML</a>,<a href="https://marketplace.visualstudio.com/items?itemName=remcohaszing.schemastore" target="_blank">JSON</a>)</li>
        <li>Visual Studio for Mac</li>
        <li>WebStorm</li>
    </ul>

    <p>Any schema on SchemaStore.org will automatically be synchronized to the supporting editors.</p>
</article>

<article>
    <h3 id="sponsor">Sponsorships <span style="color:mediumvioletred">♡</span></h3>
    <p>
        <img src="/img/sponsor.png" width="160" height="192" alt="Sponsor SchemaStore.org now" class="right" />
		Over 1 TB of JSON Schema files are served each day from SchemaStore.org. It's a big effort to maintain
		and keep running, and it's all done by JSON Schema loving volunteers.

        If your business gets value from SchemaStore.org, please consider sponsoring to keep the project alive and healthy.
    </p>

    <p>Premium sponsors:</p>

	<ul>
		<li><strong>Microsoft</strong></li>
        <li><strong>JetBrains</strong></li>
		<li>Your business?</li>
	</ul>

    <p>
		Do you build IDEs or editors that integrate with SchemaStore.org, or host a schema for your paying customers, consider a sponsorship.
	</p>

	<p><a href="https://github.com/sponsors/madskristensen">SchemaStore.org sponsorships <span style="color:mediumvioletred">♡</span></a></p>
</article>

<article>
    <h3 id="ci">Supporting Continuous Integration tools</h3>
    <p>
        CI/CD applications can detect all JSON and YAML files and validate them if a matching schema is found on SchemaStore.org
    </p>

    <ul>
        <li><a href="https://megalinter.github.io" target="_blank">MegaLinter</a></li>
    </ul>
</article>

<article>
    <h3 id="contribute">Contribute</h3>
    <p>
        <img src="/img/octocat.png" width="250" height="208" alt="Hosted on GitHub" class="left" />
        The goal of this API is to include schemas for all commonly
        known JSON file formats. To do that we encourage contributions in terms of new schemas,
        modifications and test files.
    </p>

    <p>
        SchemaStore.org is owned by the community, and we have a history of accepting most pull requests.
        Even if you're new to JSON Schemas, please submit new schemas anyway. We have many contributors that
        will help turn the schemas into perfection.
    </p>
</article>
